package com.opennetexam.manager.common;

import com.opennetexam.manager.enums.OperationResultType;

/**
 * @author naicha
 * Created on 2017/11/7.
 */
public class OperationResult {

    /**
     * 获取或设置 操作结果类型
     */
    private OperationResultType resultType;
    /**
     * 获取或设置 操作返回信息
     */
    private String message;
    /**
     * 获取或设置 操作返回的日志消息，用于记录日志
     */
    private String logMessage;
    /**
     * 获取或设置 操作结果附加信息
     */
    private Object appendData;

    public OperationResult() { }

    /**
     * 初始化一个 业务操作结果信息类 的新实例
     * @param resultType 业务操作结果类型
     */
    public OperationResult(OperationResultType resultType) {
        this.resultType = resultType;
    }

    /**
     * 初始化一个 定义返回消息的业务操作结果信息类 的新实例
     * @param resultType 业务操作结果类型
     * @param message 业务返回消息
     */
    public OperationResult(OperationResultType resultType, String message) {
        this.resultType = resultType;
        this.message = message;
    }

    public OperationResult(OperationResultType resultType, Object appendData) {
        this.resultType = resultType;
        this.appendData = appendData;
    }

    /**
     * 初始化一个 定义返回消息与日志消息的业务操作结果信息类 的新实例
     * @param resultType 业务操作结果类型
     * @param message 业务返回消息
     * @param logMessage 业务日志记录消息
     */
    public OperationResult(OperationResultType resultType, String message, String logMessage) {
        this.resultType = resultType;
        this.message = message;
        this.logMessage = logMessage;
    }

    /**
     * 初始化一个 定义返回消息与附加数据的业务操作结果信息类 的新实例
     * @param resultType 业务操作结果类型
     * @param message 业务返回消息
     * @param appendData 业务返回数据
     */
    public OperationResult(OperationResultType resultType, String message, Object appendData) {
        this.resultType = resultType;
        this.message = message;
        this.appendData = appendData;
    }

    /**
     * 初始化一个 定义返回消息、日志消息与附加数据的业务操作结果信息类 的新实例
     * @param resultType 业务操作结果类型
     * @param message 业务返回消息
     * @param logMessage 业务日志记录消息
     * @param appendData 业务返回数据
     */
    public OperationResult(OperationResultType resultType, String message, String logMessage, Object appendData) {
        this.resultType = resultType;
        this.message = message;
        this.logMessage = logMessage;
        this.appendData = appendData;
    }

    public OperationResultType getResultType() {
        return resultType;
    }

    public void setResultType(OperationResultType resultType) {
        this.resultType = resultType;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public String getLogMessage() {
        return logMessage;
    }

    public void setLogMessage(String logMessage) {
        this.logMessage = logMessage;
    }

    public Object getAppendData() {
        return appendData;
    }

    public void setAppendData(Object appendData) {
        this.appendData = appendData;
    }
}
